﻿const JP2_CHAR_CONTEXT: &[&[u8]] = &[
    &[
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
    ],
    &[
        2,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        4,
        4,
        4,
        2,
        4,
        3,
        3,
        4,
        3,
        2,
        3,
        3,
        4,
        2,
        3,
        3,
        3,
        2,
        4,
        1,
        4,
        3,
        3,
        1,
        5,
        4,
        3,
        4,
        3,
        4,
        3,
        5,
        3,
        0,
        3,
        5,
        4,
        2,
        0,
        3,
        1,
        0,
        3,
        3,
        0,
        3,
        3,
        0,
        1,
        1,
        0,
        4,
        3,
        0,
        3,
        3,
        0,
        4,
        0,
        2,
        0,
        3,
        5,
        5,
        5,
        5,
        4,
        0,
        4,
        1,
        0,
        3,
        4,
    ],
    &[
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
    ],
    &[
        0,
        4,
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        4,
        5,
        4,
        4,
        3,
        5,
        3,
        5,
        1,
        5,
        3,
        4,
        3,
        4,
        4,
        3,
        4,
        3,
        3,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        5,
        3,
        5,
        5,
        5,
        3,
        5,
        5,
        3,
        4,
        5,
        5,
        3,
        1,
        3,
        2,
        0,
        3,
        4,
        0,
        4,
        2,
        0,
        4,
        2,
        1,
        5,
        3,
        2,
        3,
        5,
        0,
        4,
        0,
        2,
        0,
        5,
        4,
        4,
        5,
        4,
        5,
        0,
        4,
        0,
        0,
        4,
        4,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ],
    &[
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        5,
        4,
        3,
        3,
        3,
        3,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        4,
        4,
        3,
        4,
        3,
        4,
        4,
        4,
        4,
        5,
        3,
        4,
        4,
        3,
        4,
        5,
        5,
        4,
        5,
        5,
        1,
        4,
        5,
        4,
        3,
        0,
        3,
        3,
        1,
        3,
        3,
        0,
        4,
        4,
        0,
        3,
        3,
        1,
        5,
        3,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        4,
        3,
        3,
        0,
        4,
        1,
        1,
        3,
        4,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ],
    &[
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        0,
        3,
        4,
        4,
        3,
        2,
        2,
        1,
        2,
        1,
        3,
        1,
        3,
        3,
        3,
        3,
        3,
        4,
        3,
        1,
        3,
        3,
        5,
        3,
        3,
        0,
        4,
        3,
        0,
        5,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        4,
        4,
        5,
        0,
        1,
        2,
        0,
        1,
        2,
        0,
        2,
        2,
        0,
        1,
        0,
        0,
        5,
        2,
        2,
        1,
        4,
        0,
        3,
        0,
        1,
        0,
        4,
        4,
        3,
        5,
        4,
        3,
        0,
        2,
        1,
        0,
        4,
        3,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ],
    &[
        0,
        3,
        0,
        5,
        0,
        4,
        0,
        2,
        1,
        4,
        4,
        2,
        4,
        1,
        4,
        2,
        4,
        2,
        4,
        3,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        1,
        4,
        2,
        3,
        3,
        3,
        1,
        4,
        4,
        1,
        1,
        1,
        4,
        3,
        3,
        2,
        0,
        2,
        4,
        3,
        2,
        0,
        3,
        3,
        0,
        3,
        1,
        1,
        0,
        0,
        0,
        3,
        3,
        0,
        4,
        2,
        2,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        5,
        3,
        4,
        4,
        0,
        3,
        0,
        0,
        1,
        4,
    ],
    &[
        1,
        4,
        0,
        4,
        0,
        4,
        0,
        4,
        0,
        3,
        5,
        4,
        4,
        3,
        4,
        3,
        5,
        4,
        3,
        3,
        4,
        3,
        5,
        4,
        4,
        4,
        4,
        3,
        4,
        2,
        4,
        3,
        3,
        1,
        5,
        4,
        3,
        2,
        4,
        5,
        4,
        5,
        5,
        4,
        4,
        5,
        4,
        4,
        0,
        3,
        2,
        2,
        3,
        3,
        0,
        4,
        3,
        1,
        3,
        2,
        1,
        4,
        3,
        3,
        4,
        5,
        0,
        3,
        0,
        2,
        0,
        4,
        5,
        5,
        4,
        5,
        4,
        0,
        4,
        0,
        0,
        5,
        4,
    ],
    &[
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        4,
        4,
        3,
        4,
        3,
        4,
        3,
        3,
        1,
        4,
        2,
        4,
        3,
        4,
        0,
        5,
        4,
        1,
        4,
        5,
        4,
        4,
        5,
        3,
        2,
        4,
        3,
        4,
        3,
        2,
        4,
        1,
        3,
        3,
        3,
        2,
        3,
        2,
        0,
        4,
        3,
        3,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        5,
        4,
        4,
        4,
        3,
        0,
        4,
        1,
        0,
        1,
        3,
    ],
    &[
        0,
        3,
        1,
        4,
        0,
        3,
        0,
        2,
        0,
        3,
        4,
        4,
        3,
        1,
        4,
        2,
        3,
        3,
        4,
        3,
        4,
        3,
        4,
        3,
        4,
        4,
        3,
        2,
        3,
        1,
        5,
        4,
        4,
        1,
        4,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        5,
        4,
        3,
        4,
        4,
        3,
        1,
        2,
        3,
        1,
        2,
        2,
        0,
        3,
        2,
        0,
        3,
        1,
        0,
        5,
        3,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        4,
        4,
        4,
        4,
        5,
        4,
        2,
        0,
        3,
        3,
        2,
        4,
        3,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        1,
        0,
        1,
        0,
        0,
        3,
        2,
        0,
        0,
        2,
        0,
        1,
        0,
        2,
        1,
        3,
        3,
        3,
        1,
        2,
        3,
        1,
        0,
        1,
        0,
        4,
        2,
        1,
        1,
        3,
        3,
        0,
        4,
        3,
        3,
        1,
        4,
        3,
        3,
        0,
        3,
        3,
        2,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        4,
        1,
        0,
        2,
        3,
        2,
        2,
        2,
        1,
        3,
        3,
        3,
        4,
        4,
        3,
        2,
        0,
        3,
        1,
        0,
        3,
        3,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        4,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        4,
        3,
        4,
        2,
        4,
        3,
        4,
        3,
        3,
        2,
        4,
        3,
        4,
        5,
        4,
        1,
        4,
        5,
        3,
        5,
        4,
        5,
        3,
        5,
        4,
        0,
        3,
        5,
        5,
        3,
        1,
        3,
        3,
        2,
        2,
        3,
        0,
        3,
        4,
        1,
        3,
        3,
        2,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        5,
        4,
        4,
        5,
        3,
        0,
        4,
        1,
        0,
        3,
        4,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        3,
        0,
        0,
        0,
        2,
        2,
        2,
        1,
        0,
        1,
        0,
        0,
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        1,
        3,
        1,
        0,
        3,
        1,
        3,
        3,
        3,
        1,
        3,
        3,
        3,
        0,
        1,
        3,
        1,
        3,
        4,
        0,
        0,
        3,
        1,
        1,
        0,
        3,
        2,
        0,
        0,
        0,
        0,
        1,
        3,
        0,
        1,
        0,
        0,
        3,
        3,
        2,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        3,
        4,
        3,
        4,
        3,
        3,
        0,
        3,
        0,
        0,
        2,
        3,
    ],
    &[
        2,
        3,
        0,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        3,
        4,
        3,
        1,
        3,
        1,
        1,
        1,
        3,
        1,
        4,
        3,
        4,
        3,
        3,
        3,
        0,
        0,
        3,
        1,
        5,
        4,
        3,
        1,
        4,
        3,
        2,
        5,
        5,
        4,
        4,
        4,
        4,
        3,
        3,
        4,
        4,
        4,
        0,
        2,
        1,
        1,
        3,
        2,
        0,
        1,
        2,
        0,
        0,
        1,
        0,
        4,
        1,
        3,
        3,
        3,
        0,
        3,
        0,
        1,
        0,
        4,
        4,
        4,
        5,
        5,
        3,
        0,
        2,
        0,
        0,
        4,
        4,
    ],
    &[
        0,
        2,
        0,
        1,
        0,
        3,
        1,
        3,
        0,
        2,
        3,
        3,
        3,
        0,
        3,
        1,
        0,
        0,
        3,
        0,
        3,
        2,
        3,
        1,
        3,
        2,
        1,
        1,
        0,
        0,
        4,
        2,
        1,
        0,
        2,
        3,
        1,
        4,
        3,
        2,
        0,
        4,
        4,
        3,
        1,
        3,
        1,
        3,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        1,
        1,
        1,
        2,
        0,
        3,
        0,
        0,
        0,
        3,
        4,
        2,
        4,
        3,
        2,
        0,
        1,
        0,
        0,
        3,
        3,
    ],
    &[
        0,
        1,
        0,
        4,
        0,
        5,
        0,
        4,
        0,
        2,
        4,
        4,
        2,
        3,
        3,
        2,
        3,
        3,
        5,
        3,
        3,
        3,
        4,
        3,
        4,
        2,
        3,
        0,
        4,
        3,
        3,
        3,
        4,
        1,
        4,
        3,
        2,
        1,
        5,
        5,
        3,
        4,
        5,
        1,
        3,
        5,
        4,
        2,
        0,
        3,
        3,
        0,
        1,
        3,
        0,
        4,
        2,
        0,
        1,
        3,
        1,
        4,
        3,
        3,
        3,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        4,
        4,
        4,
        5,
        5,
        0,
        3,
        0,
        1,
        4,
        5,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        3,
        0,
        0,
        0,
        2,
        3,
        1,
        3,
        0,
        4,
        0,
        1,
        1,
        3,
        0,
        3,
        4,
        3,
        2,
        3,
        1,
        0,
        3,
        3,
        2,
        3,
        1,
        3,
        0,
        2,
        3,
        0,
        2,
        1,
        4,
        1,
        2,
        2,
        0,
        0,
        3,
        3,
        0,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        2,
        2,
        0,
        3,
        2,
        1,
        3,
        3,
        0,
        2,
        0,
        2,
        0,
        0,
        3,
        3,
        1,
        2,
        4,
        0,
        3,
        0,
        2,
        2,
        3,
    ],
    &[
        2,
        4,
        0,
        5,
        0,
        4,
        0,
        4,
        0,
        2,
        4,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        1,
        2,
        4,
        3,
        4,
        3,
        4,
        4,
        5,
        0,
        3,
        3,
        3,
        3,
        2,
        0,
        4,
        3,
        1,
        4,
        3,
        4,
        1,
        4,
        4,
        3,
        3,
        4,
        4,
        3,
        1,
        2,
        3,
        0,
        4,
        2,
        0,
        4,
        1,
        0,
        3,
        3,
        0,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        2,
        0,
        3,
        5,
        3,
        4,
        5,
        2,
        0,
        3,
        0,
        0,
        4,
        5,
    ],
    &[
        0,
        3,
        0,
        4,
        0,
        1,
        0,
        1,
        0,
        1,
        3,
        2,
        2,
        1,
        3,
        0,
        3,
        0,
        2,
        0,
        2,
        0,
        3,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        3,
        1,
        0,
        0,
        0,
        4,
        0,
        3,
        1,
        0,
        2,
        1,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        4,
        2,
        2,
        3,
        1,
        0,
        3,
        0,
        0,
        0,
        1,
        4,
        4,
        4,
        3,
        0,
        0,
        4,
        0,
        0,
        1,
        4,
    ],
    &[
        1,
        4,
        1,
        5,
        0,
        3,
        0,
        3,
        0,
        4,
        5,
        4,
        4,
        3,
        5,
        3,
        3,
        4,
        4,
        3,
        4,
        1,
        3,
        3,
        3,
        3,
        2,
        1,
        4,
        1,
        5,
        4,
        3,
        1,
        4,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        4,
        3,
        3,
        4,
        4,
        4,
        0,
        3,
        3,
        1,
        2,
        3,
        0,
        3,
        1,
        0,
        3,
        3,
        0,
        5,
        4,
        4,
        4,
        4,
        4,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        3,
        5,
        4,
        0,
        3,
        2,
        0,
        4,
        4,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        1,
        0,
        0,
        0,
        1,
        3,
        3,
        3,
        2,
        4,
        1,
        3,
        0,
        3,
        1,
        3,
        0,
        2,
        2,
        1,
        1,
        0,
        0,
        2,
        0,
        4,
        3,
        1,
        0,
        4,
        3,
        0,
        4,
        4,
        4,
        1,
        4,
        3,
        1,
        1,
        3,
        3,
        1,
        0,
        2,
        0,
        0,
        1,
        3,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        4,
        3,
        2,
        4,
        3,
        5,
        4,
        3,
        3,
        3,
        4,
        3,
        3,
        4,
        3,
        3,
        0,
        2,
        1,
        0,
        3,
        3,
    ],
    &[
        0,
        2,
        0,
        4,
        0,
        3,
        0,
        2,
        0,
        2,
        5,
        5,
        3,
        4,
        4,
        4,
        4,
        1,
        4,
        3,
        3,
        0,
        4,
        3,
        4,
        3,
        1,
        3,
        3,
        2,
        4,
        3,
        0,
        3,
        4,
        3,
        0,
        3,
        4,
        4,
        2,
        4,
        4,
        0,
        4,
        5,
        3,
        3,
        2,
        2,
        1,
        1,
        1,
        2,
        0,
        1,
        5,
        0,
        3,
        3,
        2,
        4,
        3,
        3,
        3,
        4,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        5,
        5,
        0,
        0,
        3,
        0,
        2,
        3,
        3,
    ],
    &[
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        4,
        3,
        3,
        1,
        3,
        3,
        3,
        0,
        3,
        1,
        3,
        0,
        4,
        3,
        3,
        1,
        1,
        0,
        3,
        0,
        3,
        3,
        0,
        0,
        4,
        4,
        0,
        1,
        5,
        4,
        3,
        3,
        5,
        0,
        3,
        3,
        4,
        3,
        0,
        2,
        0,
        1,
        1,
        1,
        0,
        1,
        3,
        0,
        1,
        2,
        1,
        3,
        3,
        2,
        3,
        3,
        0,
        3,
        0,
        1,
        0,
        1,
        3,
        3,
        4,
        4,
        1,
        0,
        1,
        2,
        2,
        1,
        3,
    ],
    &[
        0,
        1,
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        1,
        3,
        3,
        3,
        2,
        3,
        1,
        1,
        0,
        3,
        0,
        3,
        3,
        4,
        3,
        2,
        4,
        2,
        0,
        1,
        0,
        4,
        3,
        2,
        0,
        4,
        3,
        0,
        5,
        3,
        3,
        2,
        4,
        4,
        4,
        3,
        3,
        3,
        4,
        0,
        1,
        3,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        2,
        3,
        3,
        3,
        0,
        3,
        0,
        0,
        0,
        4,
        4,
        4,
        5,
        3,
        2,
        0,
        3,
        3,
        0,
        3,
        5,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        0,
        0,
        3,
        0,
        1,
        3,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        3,
        1,
        1,
        3,
        3,
        0,
        0,
        3,
        0,
        0,
        3,
        0,
        2,
        3,
        1,
        0,
        3,
        1,
        0,
        3,
        3,
        2,
        0,
        4,
        2,
        2,
        0,
        2,
        0,
        0,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        1,
        2,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        3,
        1,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        4,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        5,
        0,
        1,
        0,
        2,
        4,
        3,
        1,
        3,
        3,
        2,
        1,
        1,
        5,
        2,
        1,
        0,
        5,
        1,
        2,
        0,
        0,
        0,
        3,
        3,
        2,
        2,
        3,
        2,
        4,
        3,
        0,
        0,
        3,
        3,
        1,
        3,
        3,
        0,
        2,
        5,
        3,
        4,
        0,
        3,
        3,
        0,
        1,
        2,
        0,
        2,
        2,
        0,
        3,
        2,
        0,
        2,
        2,
        3,
        3,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        4,
        4,
        2,
        5,
        4,
        0,
        3,
        0,
        0,
        3,
        5,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        3,
        3,
        3,
        0,
        3,
        0,
        2,
        0,
        2,
        1,
        1,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        1,
        0,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        3,
        3,
        1,
        2,
        3,
        1,
        0,
        3,
        3,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        2,
        3,
        1,
        2,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        2,
        1,
        0,
        4,
        3,
        0,
        1,
        1,
        0,
        3,
        3,
    ],
    &[
        0,
        4,
        0,
        5,
        0,
        3,
        0,
        3,
        0,
        4,
        5,
        5,
        4,
        3,
        5,
        3,
        4,
        3,
        5,
        3,
        3,
        2,
        5,
        3,
        4,
        4,
        4,
        3,
        4,
        3,
        4,
        5,
        5,
        3,
        4,
        4,
        3,
        4,
        4,
        5,
        4,
        4,
        4,
        3,
        4,
        5,
        5,
        4,
        2,
        3,
        4,
        2,
        3,
        4,
        0,
        3,
        3,
        1,
        4,
        3,
        2,
        4,
        3,
        3,
        5,
        5,
        0,
        3,
        0,
        3,
        0,
        5,
        5,
        5,
        5,
        4,
        4,
        0,
        4,
        0,
        1,
        4,
        4,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        3,
        5,
        4,
        4,
        2,
        3,
        2,
        5,
        1,
        3,
        2,
        5,
        1,
        4,
        2,
        3,
        2,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        2,
        5,
        4,
        1,
        3,
        3,
        5,
        3,
        4,
        4,
        0,
        4,
        4,
        3,
        1,
        1,
        3,
        1,
        0,
        2,
        3,
        0,
        2,
        3,
        0,
        3,
        0,
        0,
        4,
        3,
        1,
        3,
        4,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        4,
        3,
        4,
        5,
        0,
        4,
        0,
        0,
        3,
        4,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        3,
        1,
        2,
        0,
        3,
        4,
        4,
        3,
        3,
        3,
        0,
        2,
        2,
        4,
        3,
        3,
        1,
        3,
        3,
        3,
        1,
        1,
        0,
        3,
        1,
        4,
        3,
        2,
        3,
        4,
        4,
        2,
        4,
        4,
        4,
        3,
        4,
        4,
        3,
        2,
        4,
        4,
        3,
        1,
        3,
        3,
        1,
        3,
        3,
        0,
        4,
        1,
        0,
        2,
        2,
        1,
        4,
        3,
        2,
        3,
        3,
        5,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        3,
        0,
        4,
        0,
        3,
        2,
        2,
        4,
        4,
    ],
    &[
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        2,
        1,
        3,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        1,
        2,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        1,
        0,
        1,
        1,
        3,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        2,
        2,
        0,
        3,
        4,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
    ],
    &[
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        0,
        4,
        1,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        1,
        5,
        1,
        4,
        0,
        0,
        3,
        0,
        5,
        0,
        5,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        1,
        4,
        0,
        1,
        3,
        0,
        0,
        3,
        0,
        0,
        3,
        1,
        1,
        4,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ],
    &[
        1,
        4,
        0,
        5,
        0,
        3,
        0,
        2,
        0,
        3,
        5,
        4,
        4,
        3,
        4,
        3,
        5,
        3,
        4,
        3,
        3,
        0,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        2,
        4,
        4,
        3,
        1,
        3,
        4,
        4,
        5,
        4,
        4,
        3,
        4,
        4,
        1,
        3,
        5,
        4,
        3,
        3,
        3,
        1,
        2,
        2,
        3,
        3,
        1,
        3,
        1,
        3,
        3,
        3,
        5,
        3,
        3,
        4,
        5,
        0,
        3,
        0,
        3,
        0,
        3,
        4,
        3,
        4,
        4,
        3,
        0,
        3,
        0,
        2,
        4,
        3,
    ],
    &[
        0,
        1,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        1,
        4,
        0,
        4,
        1,
        4,
        2,
        4,
        0,
        3,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        3,
        1,
        1,
        1,
        0,
        3,
        0,
        0,
        0,
        1,
        2,
        1,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        3,
        2,
        0,
        2,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        3,
        2,
        3,
        3,
        0,
        0,
        0,
        0,
        2,
        1,
        0,
    ],
    &[
        0,
        5,
        1,
        5,
        0,
        3,
        0,
        3,
        0,
        5,
        4,
        4,
        5,
        1,
        5,
        3,
        3,
        0,
        4,
        3,
        4,
        3,
        5,
        3,
        4,
        3,
        3,
        2,
        4,
        3,
        4,
        3,
        3,
        0,
        3,
        3,
        1,
        4,
        4,
        3,
        4,
        4,
        4,
        3,
        4,
        5,
        5,
        3,
        2,
        3,
        1,
        1,
        3,
        3,
        1,
        3,
        1,
        1,
        3,
        3,
        2,
        4,
        5,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        5,
        3,
        3,
        0,
        3,
        4,
        0,
        4,
        3,
    ],
    &[
        0,
        5,
        0,
        5,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        5,
        2,
        4,
        3,
        3,
        3,
        4,
        4,
        4,
        3,
        5,
        3,
        5,
        3,
        3,
        1,
        4,
        0,
        4,
        3,
        3,
        0,
        3,
        3,
        0,
        4,
        4,
        4,
        4,
        5,
        4,
        3,
        3,
        5,
        5,
        3,
        2,
        3,
        1,
        2,
        3,
        2,
        0,
        1,
        0,
        0,
        3,
        2,
        2,
        4,
        4,
        3,
        1,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        3,
        1,
        3,
        2,
        1,
        0,
        3,
        3,
        0,
        3,
        3,
    ],
    &[
        0,
        4,
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        4,
        5,
        5,
        5,
        3,
        4,
        3,
        3,
        2,
        5,
        4,
        4,
        3,
        5,
        3,
        5,
        3,
        4,
        0,
        4,
        3,
        4,
        4,
        3,
        2,
        4,
        4,
        3,
        4,
        5,
        4,
        4,
        5,
        5,
        0,
        3,
        5,
        5,
        4,
        1,
        3,
        3,
        2,
        3,
        3,
        1,
        3,
        1,
        0,
        4,
        3,
        1,
        4,
        4,
        3,
        4,
        5,
        0,
        4,
        0,
        2,
        0,
        4,
        3,
        4,
        4,
        3,
        3,
        0,
        4,
        0,
        0,
        5,
        5,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        5,
        0,
        1,
        1,
        3,
        3,
        4,
        4,
        3,
        4,
        1,
        3,
        0,
        5,
        1,
        3,
        0,
        3,
        1,
        3,
        1,
        1,
        0,
        3,
        0,
        3,
        3,
        4,
        0,
        4,
        3,
        0,
        4,
        4,
        4,
        3,
        4,
        4,
        0,
        3,
        5,
        4,
        1,
        0,
        3,
        0,
        0,
        2,
        3,
        0,
        3,
        1,
        0,
        3,
        1,
        0,
        3,
        2,
        1,
        3,
        5,
        0,
        3,
        0,
        1,
        0,
        3,
        2,
        3,
        3,
        4,
        4,
        0,
        2,
        2,
        0,
        4,
        4,
    ],
    &[
        2,
        4,
        0,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        5,
        5,
        4,
        3,
        5,
        3,
        5,
        3,
        5,
        3,
        5,
        2,
        5,
        3,
        4,
        3,
        3,
        4,
        3,
        4,
        5,
        3,
        2,
        1,
        5,
        4,
        3,
        2,
        3,
        4,
        5,
        3,
        4,
        1,
        2,
        5,
        4,
        3,
        0,
        3,
        3,
        0,
        3,
        2,
        0,
        2,
        3,
        0,
        4,
        1,
        0,
        3,
        4,
        3,
        3,
        5,
        0,
        3,
        0,
        1,
        0,
        4,
        5,
        5,
        5,
        4,
        3,
        0,
        4,
        2,
        0,
        3,
        5,
    ],
    &[
        0,
        5,
        0,
        4,
        0,
        4,
        0,
        2,
        0,
        5,
        4,
        3,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        4,
        2,
        5,
        3,
        5,
        3,
        4,
        1,
        4,
        3,
        4,
        4,
        4,
        0,
        3,
        5,
        0,
        4,
        4,
        4,
        4,
        5,
        3,
        1,
        3,
        4,
        5,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        0,
        2,
        2,
        0,
        3,
        3,
        2,
        4,
        3,
        3,
        3,
        5,
        3,
        4,
        1,
        3,
        3,
        5,
        3,
        2,
        0,
        0,
        0,
        0,
        4,
        3,
        1,
        3,
        3,
    ],
    &[
        0,
        1,
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        1,
        3,
        3,
        3,
        2,
        3,
        3,
        3,
        0,
        3,
        0,
        0,
        0,
        3,
        1,
        3,
        0,
        0,
        0,
        2,
        2,
        2,
        3,
        0,
        0,
        3,
        2,
        0,
        1,
        2,
        4,
        1,
        3,
        3,
        0,
        0,
        3,
        3,
        3,
        0,
        1,
        0,
        0,
        2,
        1,
        0,
        0,
        3,
        0,
        3,
        1,
        0,
        3,
        0,
        0,
        1,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        3,
        1,
        3,
        3,
        0,
        0,
        1,
        1,
        0,
        3,
        3,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        2,
        1,
        4,
        0,
        2,
        2,
        3,
        1,
        1,
        3,
        1,
        1,
        0,
        2,
        0,
        3,
        1,
        2,
        3,
        1,
        3,
        0,
        0,
        1,
        0,
        4,
        3,
        2,
        3,
        3,
        3,
        1,
        4,
        2,
        3,
        3,
        3,
        3,
        1,
        0,
        3,
        1,
        4,
        0,
        1,
        1,
        0,
        1,
        2,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        3,
        1,
        3,
        2,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        3,
        3,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        3,
    ],
    &[
        0,
        5,
        0,
        4,
        0,
        5,
        0,
        2,
        0,
        4,
        5,
        5,
        3,
        3,
        4,
        3,
        3,
        1,
        5,
        4,
        4,
        2,
        4,
        4,
        4,
        3,
        4,
        2,
        4,
        3,
        5,
        5,
        4,
        3,
        3,
        4,
        3,
        3,
        5,
        5,
        4,
        5,
        5,
        1,
        3,
        4,
        5,
        3,
        1,
        4,
        3,
        1,
        3,
        3,
        0,
        3,
        3,
        1,
        4,
        3,
        1,
        4,
        5,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        5,
        3,
        3,
        1,
        4,
        3,
        0,
        4,
        0,
        1,
        5,
        3,
    ],
    &[
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        2,
        0,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        3,
        3,
        5,
        4,
        4,
        4,
        4,
        4,
        4,
        5,
        3,
        3,
        5,
        2,
        4,
        4,
        4,
        3,
        4,
        4,
        3,
        3,
        4,
        4,
        5,
        5,
        3,
        3,
        4,
        3,
        4,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        1,
        2,
        2,
        1,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        4,
        4,
        4,
        1,
        0,
        4,
        2,
        0,
        2,
        4,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        5,
        2,
        3,
        0,
        3,
        0,
        2,
        1,
        4,
        2,
        3,
        3,
        4,
        1,
        4,
        3,
        3,
        2,
        4,
        1,
        3,
        3,
        3,
        0,
        3,
        3,
        0,
        0,
        3,
        3,
        3,
        5,
        3,
        3,
        3,
        3,
        3,
        2,
        0,
        2,
        0,
        0,
        2,
        0,
        0,
        2,
        0,
        0,
        1,
        0,
        0,
        3,
        1,
        2,
        2,
        3,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        3,
        4,
        1,
        0,
        3,
        0,
        0,
        2,
        4,
    ],
    &[
        0,
        0,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        3,
        1,
        3,
        0,
        3,
        2,
        0,
        0,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        4,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
    ],
    &[
        0,
        2,
        1,
        3,
        0,
        2,
        0,
        2,
        0,
        3,
        3,
        3,
        3,
        1,
        3,
        1,
        3,
        3,
        3,
        3,
        3,
        3,
        4,
        2,
        2,
        1,
        2,
        1,
        4,
        0,
        4,
        3,
        1,
        3,
        3,
        3,
        2,
        4,
        3,
        5,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        0,
        1,
        3,
        0,
        2,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        4,
        2,
        0,
        2,
        3,
        0,
        3,
        3,
        0,
        3,
        3,
        4,
        2,
        3,
        1,
        4,
        0,
        1,
        2,
        0,
        2,
        3,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        0,
        2,
        3,
        3,
        3,
        0,
        3,
        1,
        2,
        0,
        3,
        3,
        2,
        3,
        3,
        2,
        3,
        2,
        3,
        1,
        3,
        0,
        4,
        3,
        2,
        0,
        3,
        3,
        1,
        4,
        3,
        3,
        2,
        3,
        4,
        3,
        1,
        3,
        3,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        4,
        1,
        1,
        0,
        3,
        0,
        3,
        1,
        0,
        2,
        3,
        3,
        3,
        3,
        3,
        1,
        0,
        0,
        2,
        0,
        3,
        3,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        2,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        3,
        0,
        3,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        2,
        0,
        2,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
    ],
    &[
        0,
        2,
        0,
        3,
        1,
        3,
        0,
        3,
        0,
        2,
        3,
        3,
        3,
        1,
        3,
        1,
        3,
        1,
        3,
        1,
        3,
        3,
        3,
        1,
        3,
        0,
        2,
        3,
        1,
        1,
        4,
        3,
        3,
        2,
        3,
        3,
        1,
        2,
        2,
        4,
        1,
        3,
        3,
        0,
        1,
        4,
        2,
        3,
        0,
        1,
        3,
        0,
        3,
        0,
        0,
        1,
        3,
        0,
        2,
        0,
        0,
        3,
        3,
        2,
        1,
        3,
        0,
        3,
        0,
        2,
        0,
        3,
        4,
        4,
        4,
        3,
        1,
        0,
        3,
        0,
        0,
        3,
        3,
    ],
    &[
        0,
        2,
        0,
        1,
        0,
        2,
        0,
        0,
        0,
        1,
        3,
        2,
        2,
        1,
        3,
        0,
        1,
        1,
        3,
        0,
        3,
        2,
        3,
        1,
        2,
        0,
        2,
        0,
        1,
        1,
        3,
        3,
        3,
        0,
        3,
        3,
        1,
        1,
        2,
        3,
        2,
        3,
        3,
        1,
        2,
        3,
        2,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        1,
        0,
        0,
        2,
        1,
        2,
        1,
        3,
        0,
        3,
        0,
        0,
        0,
        3,
        4,
        4,
        4,
        3,
        2,
        0,
        2,
        0,
        0,
        2,
        4,
    ],
    &[
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        2,
        0,
        3,
        0,
        3,
        3,
        3,
        2,
        3,
        2,
        2,
        2,
        0,
        3,
        1,
        3,
        3,
        3,
        2,
        3,
        3,
        0,
        0,
        3,
        0,
        3,
        2,
        2,
        0,
        2,
        3,
        1,
        4,
        3,
        4,
        3,
        3,
        2,
        3,
        1,
        5,
        4,
        4,
        0,
        3,
        1,
        2,
        1,
        3,
        0,
        3,
        1,
        1,
        2,
        0,
        2,
        3,
        1,
        3,
        1,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        3,
        4,
        4,
        2,
        1,
        0,
        2,
        1,
        0,
        2,
        4,
    ],
    &[
        0,
        1,
        0,
        3,
        0,
        1,
        0,
        2,
        0,
        1,
        4,
        2,
        5,
        1,
        4,
        0,
        2,
        0,
        2,
        1,
        3,
        1,
        4,
        0,
        2,
        1,
        0,
        0,
        2,
        1,
        4,
        1,
        1,
        0,
        3,
        3,
        0,
        5,
        1,
        3,
        2,
        3,
        3,
        1,
        0,
        3,
        2,
        3,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        0,
        1,
        0,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        3,
        3,
        4,
        3,
        3,
        0,
        0,
        0,
        0,
        2,
        3,
    ],
    &[
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        3,
    ],
    &[
        0,
        1,
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        2,
        4,
        3,
        1,
        0,
        3,
        2,
        2,
        1,
        3,
        1,
        2,
        2,
        3,
        1,
        1,
        1,
        2,
        1,
        3,
        0,
        1,
        2,
        0,
        1,
        3,
        2,
        1,
        3,
        0,
        5,
        5,
        1,
        0,
        0,
        1,
        3,
        2,
        1,
        0,
        3,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        3,
        4,
        0,
        1,
        1,
        1,
        3,
        2,
        0,
        2,
        0,
        1,
        0,
        2,
        3,
        3,
        1,
        2,
        3,
        0,
        1,
        0,
        1,
        0,
        4,
    ],
    &[
        0,
        0,
        0,
        1,
        0,
        3,
        0,
        3,
        0,
        2,
        2,
        1,
        0,
        0,
        4,
        0,
        3,
        0,
        3,
        1,
        3,
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        0,
        3,
        1,
        3,
        0,
        3,
        3,
        0,
        0,
        1,
        2,
        1,
        1,
        1,
        0,
        1,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        2,
        1,
        2,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        2,
        3,
        3,
        3,
        3,
        0,
        0,
        0,
        0,
        1,
        4,
    ],
    &[
        0,
        0,
        0,
        3,
        0,
        3,
        0,
        0,
        0,
        0,
        3,
        1,
        1,
        0,
        3,
        0,
        1,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        3,
        0,
        2,
        0,
        2,
        3,
        0,
        0,
        2,
        2,
        3,
        1,
        2,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        2,
        3,
    ],
    &[
        2,
        4,
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        4,
        4,
        5,
        4,
        5,
        5,
        5,
        2,
        3,
        0,
        5,
        5,
        4,
        1,
        5,
        4,
        3,
        1,
        5,
        4,
        3,
        4,
        4,
        3,
        3,
        4,
        3,
        3,
        0,
        3,
        2,
        0,
        2,
        3,
        0,
        3,
        0,
        0,
        3,
        3,
        0,
        5,
        3,
        2,
        3,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        4,
        5,
        4,
        5,
        3,
        0,
        4,
        3,
        0,
        3,
        4,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        3,
        4,
        3,
        2,
        3,
        2,
        3,
        0,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        0,
        3,
        2,
        4,
        3,
        3,
        1,
        3,
        4,
        3,
        4,
        4,
        4,
        3,
        4,
        4,
        3,
        2,
        4,
        4,
        1,
        0,
        2,
        0,
        0,
        1,
        1,
        0,
        2,
        0,
        0,
        3,
        1,
        0,
        5,
        3,
        2,
        1,
        3,
        0,
        3,
        0,
        1,
        2,
        4,
        3,
        2,
        4,
        3,
        3,
        0,
        3,
        2,
        0,
        4,
        4,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        0,
        0,
        1,
        4,
        3,
        3,
        2,
        3,
        1,
        3,
        1,
        4,
        2,
        3,
        2,
        4,
        2,
        3,
        4,
        3,
        0,
        2,
        2,
        3,
        3,
        3,
        0,
        3,
        3,
        3,
        0,
        3,
        4,
        1,
        3,
        3,
        0,
        3,
        4,
        3,
        3,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        4,
        0,
        3,
        0,
        0,
        3,
        1,
        2,
        1,
        3,
        0,
        4,
        0,
        1,
        0,
        4,
        3,
        3,
        4,
        3,
        3,
        0,
        2,
        0,
        0,
        3,
        3,
    ],
    &[
        0,
        3,
        0,
        4,
        0,
        1,
        0,
        3,
        0,
        3,
        4,
        3,
        3,
        0,
        3,
        3,
        3,
        1,
        3,
        1,
        3,
        3,
        4,
        3,
        3,
        3,
        0,
        0,
        3,
        1,
        5,
        3,
        3,
        1,
        3,
        3,
        2,
        5,
        4,
        3,
        3,
        4,
        5,
        3,
        2,
        5,
        3,
        4,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        1,
        1,
        0,
        4,
        2,
        2,
        1,
        3,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        5,
        3,
        2,
        0,
        1,
        1,
        0,
        3,
        4,
    ],
    &[
        0,
        5,
        0,
        4,
        0,
        5,
        0,
        2,
        0,
        4,
        4,
        3,
        3,
        2,
        3,
        3,
        3,
        1,
        4,
        3,
        4,
        1,
        5,
        3,
        4,
        3,
        4,
        0,
        4,
        2,
        4,
        3,
        4,
        1,
        5,
        4,
        0,
        4,
        4,
        4,
        4,
        5,
        4,
        1,
        3,
        5,
        4,
        2,
        1,
        4,
        1,
        1,
        3,
        2,
        0,
        3,
        1,
        0,
        3,
        2,
        1,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        4,
        3,
        3,
        3,
        0,
        4,
        2,
        0,
        3,
        4,
    ],
    &[
        1,
        4,
        0,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        3,
        3,
        1,
        1,
        3,
        3,
        2,
        2,
        3,
        3,
        1,
        0,
        3,
        2,
        2,
        1,
        2,
        0,
        3,
        1,
        2,
        1,
        2,
        0,
        3,
        2,
        0,
        2,
        2,
        3,
        3,
        4,
        3,
        0,
        3,
        3,
        1,
        2,
        0,
        1,
        1,
        3,
        1,
        2,
        0,
        0,
        3,
        0,
        1,
        1,
        0,
        3,
        2,
        2,
        3,
        3,
        0,
        3,
        0,
        0,
        0,
        2,
        3,
        3,
        4,
        3,
        3,
        0,
        1,
        0,
        0,
        1,
        4,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        4,
        0,
        0,
        0,
        3,
        4,
        4,
        3,
        1,
        4,
        2,
        3,
        2,
        3,
        3,
        3,
        1,
        4,
        3,
        4,
        0,
        3,
        0,
        4,
        2,
        3,
        3,
        2,
        2,
        5,
        4,
        2,
        1,
        3,
        4,
        3,
        4,
        3,
        1,
        3,
        3,
        4,
        2,
        0,
        2,
        1,
        0,
        3,
        3,
        0,
        0,
        2,
        0,
        3,
        1,
        0,
        4,
        4,
        3,
        4,
        3,
        0,
        4,
        0,
        1,
        0,
        2,
        4,
        4,
        4,
        4,
        4,
        0,
        3,
        2,
        0,
        3,
        3,
    ],
    &[
        0,
        0,
        0,
        1,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
    ],
    &[
        0,
        2,
        0,
        3,
        0,
        4,
        0,
        4,
        0,
        1,
        3,
        3,
        3,
        0,
        4,
        0,
        2,
        1,
        2,
        1,
        1,
        1,
        2,
        0,
        3,
        1,
        1,
        0,
        1,
        0,
        3,
        1,
        0,
        0,
        3,
        3,
        2,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        2,
        0,
        2,
        2,
        0,
        3,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        2,
        0,
        3,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        3,
        3,
        4,
        3,
        1,
        0,
        1,
        0,
        3,
        0,
        2,
    ],
    &[
        0,
        0,
        0,
        3,
        0,
        5,
        0,
        0,
        0,
        0,
        1,
        0,
        2,
        0,
        3,
        1,
        0,
        1,
        3,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        4,
        0,
        0,
        0,
        2,
        3,
        0,
        1,
        4,
        1,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        3,
    ],
    &[
        0,
        2,
        0,
        5,
        0,
        5,
        0,
        1,
        0,
        2,
        4,
        3,
        3,
        2,
        5,
        1,
        3,
        2,
        3,
        3,
        3,
        0,
        4,
        1,
        2,
        0,
        3,
        0,
        4,
        0,
        2,
        2,
        1,
        1,
        5,
        3,
        0,
        0,
        1,
        4,
        2,
        3,
        2,
        0,
        3,
        3,
        3,
        2,
        0,
        2,
        4,
        1,
        1,
        2,
        0,
        1,
        1,
        0,
        3,
        1,
        0,
        1,
        3,
        1,
        2,
        3,
        0,
        2,
        0,
        0,
        0,
        1,
        3,
        5,
        4,
        4,
        4,
        0,
        3,
        0,
        0,
        1,
        3,
    ],
    &[
        0,
        4,
        0,
        5,
        0,
        4,
        0,
        4,
        0,
        4,
        5,
        4,
        3,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        4,
        4,
        5,
        3,
        4,
        5,
        4,
        2,
        4,
        2,
        3,
        4,
        3,
        1,
        4,
        4,
        1,
        3,
        5,
        4,
        4,
        5,
        5,
        4,
        4,
        5,
        5,
        5,
        2,
        3,
        3,
        1,
        4,
        3,
        1,
        3,
        3,
        0,
        3,
        3,
        1,
        4,
        3,
        4,
        4,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        3,
        4,
        4,
        5,
        0,
        0,
        4,
        3,
        0,
        4,
        5,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        3,
        4,
        4,
        4,
        3,
        3,
        2,
        4,
        3,
        4,
        3,
        4,
        3,
        5,
        3,
        4,
        3,
        2,
        1,
        4,
        2,
        4,
        4,
        3,
        1,
        3,
        4,
        2,
        4,
        5,
        5,
        3,
        4,
        5,
        4,
        1,
        5,
        4,
        3,
        0,
        3,
        2,
        2,
        3,
        2,
        1,
        3,
        1,
        0,
        3,
        3,
        3,
        5,
        3,
        3,
        3,
        5,
        4,
        4,
        2,
        3,
        3,
        4,
        3,
        3,
        3,
        2,
        1,
        0,
        3,
        2,
        1,
        4,
        3,
    ],
    &[
        0,
        4,
        0,
        5,
        0,
        4,
        0,
        3,
        0,
        3,
        5,
        5,
        3,
        2,
        4,
        3,
        4,
        0,
        5,
        4,
        4,
        1,
        4,
        4,
        4,
        3,
        3,
        3,
        4,
        3,
        5,
        5,
        2,
        3,
        3,
        4,
        1,
        2,
        5,
        5,
        3,
        5,
        5,
        2,
        3,
        5,
        5,
        4,
        0,
        3,
        2,
        0,
        3,
        3,
        1,
        1,
        5,
        1,
        4,
        1,
        0,
        4,
        3,
        2,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        5,
        4,
        3,
        4,
        3,
        0,
        0,
        4,
        1,
        0,
        4,
        4,
    ],
    &[
        1,
        3,
        0,
        4,
        0,
        2,
        0,
        2,
        0,
        2,
        5,
        5,
        3,
        3,
        3,
        3,
        3,
        0,
        4,
        2,
        3,
        4,
        4,
        4,
        3,
        4,
        0,
        0,
        3,
        4,
        5,
        4,
        3,
        3,
        3,
        3,
        2,
        5,
        5,
        4,
        5,
        5,
        5,
        4,
        3,
        5,
        5,
        5,
        1,
        3,
        1,
        0,
        1,
        0,
        0,
        3,
        2,
        0,
        4,
        2,
        0,
        5,
        2,
        3,
        2,
        4,
        1,
        3,
        0,
        3,
        0,
        4,
        5,
        4,
        5,
        4,
        3,
        0,
        4,
        2,
        0,
        5,
        4,
    ],
    &[
        0,
        3,
        0,
        4,
        0,
        5,
        0,
        3,
        0,
        3,
        4,
        4,
        3,
        2,
        3,
        2,
        3,
        3,
        3,
        3,
        3,
        2,
        4,
        3,
        3,
        2,
        2,
        0,
        3,
        3,
        3,
        3,
        3,
        1,
        3,
        3,
        3,
        0,
        4,
        4,
        3,
        4,
        4,
        1,
        1,
        4,
        4,
        2,
        0,
        3,
        1,
        0,
        1,
        1,
        0,
        4,
        1,
        0,
        2,
        3,
        1,
        3,
        3,
        1,
        3,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        1,
        3,
        0,
        0,
        1,
        0,
        2,
        0,
        0,
        4,
        4,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ],
    &[
        0,
        3,
        0,
        3,
        0,
        2,
        0,
        3,
        0,
        1,
        5,
        4,
        3,
        3,
        3,
        1,
        4,
        2,
        1,
        2,
        3,
        4,
        4,
        2,
        4,
        4,
        5,
        0,
        3,
        1,
        4,
        3,
        4,
        0,
        4,
        3,
        3,
        3,
        2,
        3,
        2,
        5,
        3,
        4,
        3,
        2,
        2,
        3,
        0,
        0,
        3,
        0,
        2,
        1,
        0,
        1,
        2,
        0,
        0,
        0,
        0,
        2,
        1,
        1,
        3,
        1,
        0,
        2,
        0,
        4,
        0,
        3,
        4,
        4,
        4,
        5,
        2,
        0,
        2,
        0,
        0,
        1,
        3,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        4,
        2,
        1,
        1,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        3,
        1,
        1,
        1,
        2,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        1,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        1,
        4,
        0,
        4,
        2,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
    ],
    &[
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        3,
        1,
        0,
        0,
        0,
        2,
        0,
        2,
        1,
        0,
        0,
        1,
        2,
        1,
        0,
        1,
        1,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        2,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
    ],
    &[
        0,
        4,
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        4,
        2,
        4,
        3,
        2,
        0,
        4,
        4,
        4,
        3,
        5,
        3,
        5,
        3,
        3,
        2,
        4,
        2,
        4,
        3,
        4,
        3,
        1,
        4,
        0,
        2,
        3,
        4,
        4,
        4,
        3,
        3,
        3,
        4,
        4,
        4,
        3,
        4,
        1,
        3,
        4,
        3,
        2,
        1,
        2,
        1,
        3,
        3,
        3,
        4,
        4,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        3,
        3,
        3,
        2,
        1,
        0,
        3,
        0,
        0,
        3,
        3,
    ],
    &[
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        5,
        5,
        3,
        3,
        3,
        3,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        4,
        4,
        3,
        3,
        3,
        3,
        4,
        3,
        5,
        3,
        3,
        1,
        3,
        2,
        4,
        5,
        5,
        5,
        5,
        4,
        3,
        4,
        5,
        5,
        3,
        2,
        2,
        3,
        3,
        3,
        3,
        2,
        3,
        3,
        1,
        2,
        3,
        2,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        2,
        0,
        4,
        3,
        2,
        2,
        1,
        2,
        0,
        3,
        0,
        0,
        4,
        1,
    ],
];

pub trait JapaneseContextAnalysis {
    fn reset(&mut self);
    fn feed(&mut self, byte_str: &[u8], num_bytes: usize);
    fn got_enough_data(&self) -> bool;
    fn get_confidence(&self) -> f32;
    fn get_order(&mut self, byte_str: &[u8]) -> (i16, usize);
}

#[derive(Debug)]
pub struct BaseJapaneseContextAnalysis {
    c_enough_rel_threshold: usize,
    c_max_rel_threshold: usize,
    c_minimum_data_threshold: usize,
    m_total_rel: usize,
    m_rel_sample: [usize; 6],
    m_need_to_skip_char_num: usize,
    m_last_char_order: i16,
    m_done: bool,
    pub m_charset: String,
}

impl BaseJapaneseContextAnalysis {
    pub fn new() -> BaseJapaneseContextAnalysis {
        BaseJapaneseContextAnalysis {
            c_enough_rel_threshold: 100,
            c_max_rel_threshold: 1000,
            c_minimum_data_threshold: 4,
            m_total_rel: 0,
            m_rel_sample: [0; 6],
            m_need_to_skip_char_num: 0,
            m_last_char_order: -1,
            m_done: false,
            m_charset: "".to_string(),
        }
    }
}
impl JapaneseContextAnalysis for BaseJapaneseContextAnalysis {
    fn reset(&mut self) {
        self.m_total_rel = 0;
        self.m_rel_sample = [0; 6];
        self.m_need_to_skip_char_num = 0;
        self.m_last_char_order = -1;
        self.m_done = false;
    }
    fn feed(&mut self, _: &[u8], _: usize) {}
    fn got_enough_data(&self) -> bool {
        self.m_total_rel > self.c_enough_rel_threshold
    }
    fn get_confidence(&self) -> f32 {
        if self.m_total_rel > self.c_minimum_data_threshold {
            ((self.m_total_rel as f32) - (self.m_rel_sample[0] as f32)) / (self.m_total_rel as f32)
        } else {
            -1.0
        }
    }
    fn get_order(&mut self, _: &[u8]) -> (i16, usize) {
        (-1, 0)
    }
}

#[derive(Debug)]
pub struct SJISContextAnalysis {
    base: BaseJapaneseContextAnalysis,
}

impl SJISContextAnalysis {
    pub fn new() -> SJISContextAnalysis {
        let mut x = SJISContextAnalysis { base: BaseJapaneseContextAnalysis::new() };
        x.base.m_charset = "SHIFT_JIS".to_string();
        x
    }
    pub fn get_charset(&self) -> String {
        self.base.m_charset.clone()
    }
}

impl JapaneseContextAnalysis for SJISContextAnalysis {
    fn reset(&mut self) {
        self.base.reset();
        self.base.m_charset = "SHIFT_JIS".to_string();
    }
    fn got_enough_data(&self) -> bool {
        self.base.got_enough_data()
    }
    fn get_confidence(&self) -> f32 {
        self.base.get_confidence()
    }
    fn feed(&mut self, byte_str: &[u8], num_bytes: usize) {
        if self.base.m_done {
            return;
        }
        let mut i = self.base.m_need_to_skip_char_num;
        let mut order: (i16, usize);
        while i < num_bytes {
            order = self.get_order(&byte_str[i..]);
            i += order.1;
            if i > num_bytes {
                self.base.m_need_to_skip_char_num = i - num_bytes;
                self.base.m_last_char_order = -1;
            } else {
                if (order.0 != -1) && (self.base.m_last_char_order != -1) {
                    self.base.m_total_rel += 1;
                    if self.base.m_total_rel > self.base.c_max_rel_threshold {
                        self.base.m_done = true;
                        break;
                    }
                    self.base.m_rel_sample[JP2_CHAR_CONTEXT[self.base.m_last_char_order as usize]
                        [order.0 as usize] as
                        usize] += 1;
                }
                self.base.m_last_char_order = order.0;
            }
        }
    }
    fn get_order(&mut self, byte_str: &[u8]) -> (i16, usize) {
        let char_len: usize;
        if ((byte_str[0] >= 0x81) && (byte_str[0] <= 0x9F)) ||
            ((byte_str[0] >= 0xE0) && (byte_str[0] <= 0xFC))
        {
            char_len = 2;
            if (byte_str[0] == 0x87) || ((byte_str[0] >= 0xFA) && (byte_str[0] <= 0xFC)) {
                self.base.m_charset = "CP932".to_string();
            }
        } else {
            char_len = 1;
        }
        if byte_str.len() > 1 {
            if (byte_str[0] == 0x82) && ((byte_str[1] >= 0x9F) && (byte_str[1] <= 0xF1)) {
                return ((byte_str[1] as i16) - 0x9F, char_len);
            }
        }
        return (-1, char_len);
    }
}

#[derive(Debug)]
pub struct EUCJPContextAnalysis {
    base: BaseJapaneseContextAnalysis,
}

impl EUCJPContextAnalysis {
    pub fn new() -> EUCJPContextAnalysis {
        let mut x = EUCJPContextAnalysis { base: BaseJapaneseContextAnalysis::new() };
        x.base.m_charset = "EUC-JP".to_string();
        x
    }
    pub fn get_charset(&self) -> String {
        self.base.m_charset.clone()
    }
}

impl JapaneseContextAnalysis for EUCJPContextAnalysis {
    fn reset(&mut self) {
        self.base.reset();
        self.base.m_charset = "EUC-JP".to_string();
    }
    fn got_enough_data(&self) -> bool {
        self.base.got_enough_data()
    }
    fn get_confidence(&self) -> f32 {
        self.base.get_confidence()
    }
    fn feed(&mut self, byte_str: &[u8], num_bytes: usize) {
        if self.base.m_done {
            return;
        }
        let mut i = self.base.m_need_to_skip_char_num;
        let mut order: (i16, usize);
        while i < num_bytes {
            order = self.get_order(&byte_str[i..]);
            i += order.1;
            if i > num_bytes {
                self.base.m_need_to_skip_char_num = i - num_bytes;
                self.base.m_last_char_order = -1;
            } else {
                if (order.0 != -1) && (self.base.m_last_char_order != -1) {
                    self.base.m_total_rel += 1;
                    if self.base.m_total_rel > self.base.c_max_rel_threshold {
                        self.base.m_done = true;
                        break;
                    }
                    self.base.m_rel_sample[JP2_CHAR_CONTEXT[self.base.m_last_char_order as usize]
                        [order.0 as usize] as
                        usize] += 1;
                }
                self.base.m_last_char_order = order.0;
            }
        }
    }
    fn get_order(&mut self, byte_str: &[u8]) -> (i16, usize) {
        if byte_str.len() <= 0 {
            return (-1, 1);
        }
        let char_len: usize;
        if (byte_str[0] == 0x8E) || ((byte_str[0] >= 0xA1) && (byte_str[0] <= 0xFE)) {
            char_len = 2;
        } else if byte_str[0] == 0x8F {
            char_len = 3;
        } else {
            char_len = 1;
        }
        if byte_str.len() > 1 {
            if (byte_str[0] == 0xA4) && ((byte_str[1] >= 0xA1) && (byte_str[1] <= 0xF3)) {
                return ((byte_str[1] as i16) - 0xA1, char_len);
            }
        }
        return (-1, char_len);
    }
}